home *** CD-ROM | disk | FTP | other *** search
/ Digit Magazine 1999 December / cDigit issue 18 - December 1999.iso / pc / demos / XMLwriter 1.0 Beta shareware / data1.cab / Example_Files / Projects / Examples / Library / LibrarySchema.xml < prev   
Encoding:
Extensible Markup Language  |  1999-08-19  |  3.1 KB  |  96 lines

  1. <?xml version='1.0'?>
  2. <Schema xmlns="urn:schemas-microsoft-com:xml-data"
  3.         xmlns:dt="urn:schemas-microsoft-com:datatypes">
  4.  
  5. <!-- 
  6.     Copyright 1999 Wattle Software
  7.     This Schema is based on XML-Schema support found in
  8.     Microsoft Internet Explorer 5.
  9.     Use at your own risk!
  10. -->
  11.  
  12. <!-- first we need to declare all elements that will appear only as child elements -->
  13.  
  14. <ElementType name="first-name" content="textOnly"/>
  15. <ElementType name="last-name" content="textOnly"/>
  16. <ElementType name="name" content="textOnly"/>
  17. <ElementType name="price" content="textOnly" dt:type="fixed.14.4"/>
  18. <ElementType name="title" content="textOnly" dt:type="string"/>
  19. <ElementType name="artist" content="textOnly" dt:type="string"/>
  20. <ElementType name="callno" content="textOnly" dt:type="string"/>
  21. <ElementType name="date" content="textOnly" dt:type="date"/>
  22. <ElementType name="online_url" content="textOnly" dt:type="string"/>
  23.  
  24. <!-- and all attributes too -->
  25.  
  26. <AttributeType name="hardback" dt:type="string"/>
  27. <AttributeType name="series" dt:type="string"/>
  28.  
  29. <!-- Now we can define the more interesting elements (i.e. those that can have children ) -->
  30.  
  31. <ElementType name="author" content="eltOnly" order="one">
  32. <!-- An author can contain EITHER: a name, or a sequence of first-name then last-name -->
  33.     <group order="seq">
  34.         <element type= "name"/>
  35.     </group>
  36.     <group order="seq">
  37.         <element type="first-name"/>
  38.         <element type="last-name"/>
  39.     </group>
  40. </ElementType>
  41.  
  42. <ElementType name="director" content="eltOnly" order="one">
  43. <!-- A director can contain EITHER: a name, or a sequence of first-name then last-name -->
  44.     <group order="seq">
  45.         <element type= "name"/>
  46.     </group>
  47.     <group order="seq">
  48.         <element type="first-name"/>
  49.         <element type="last-name"/>
  50.     </group>
  51. </ElementType>
  52.  
  53. <ElementType name="video" content="eltOnly">
  54.     <element type="title"/>
  55.     <element type="director"/>
  56.     <element type="callno"/>
  57. </ElementType>
  58.  
  59. <ElementType name="cd" content="eltOnly">
  60.     <element type="title"/>
  61.     <element type="artist"/>
  62.     <element type="callno"/>
  63. </ElementType>
  64.  
  65. <ElementType name="journal" content="eltOnly">
  66. <!-- declare series as an optional attribute of journal -->
  67.     <attribute type="series" required="no"/>
  68.     <element type="title"/>
  69.     <element type="date"/>
  70.     <element type="callno"/>
  71. </ElementType>
  72.  
  73. <ElementType name="book" content="eltOnly">
  74. <!-- declare hardback as an optional attribute of journal with default value of "no" -->
  75.     <attribute type="hardback" default="no"/>
  76.     <element type="title"/>
  77. <!-- allow for multiple authors with maxOccurs -->
  78.     <element type="author" maxOccurs="*"/>
  79.     <element type="callno"/>
  80. <!-- allow for ONE optional URL -->
  81.     <element type="online_url" minOccurs="0" maxOccurs="1" />
  82. </ElementType>
  83.  
  84. <ElementType name="library" content="eltOnly">
  85. <!-- the library name comes first -->
  86.     <element type="name"/>
  87. <!-- followed by a collection of books, videos and cds -->
  88.     <group order="many">
  89.         <element type="book" maxOccurs="*"/>
  90.         <element type="journal" maxOccurs="*"/>
  91.         <element type="video" maxOccurs="*"/>
  92.         <element type="cd" maxOccurs="*"/>
  93.     </group>
  94. </ElementType>
  95.  
  96. </Schema>